﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Buccontrols;
using PluginInterface;
using Buccaneer;
using System.IO;

namespace ExamplePlugin
{
    public class SaveAction : PluginAction
    {
        public SaveAction(IPlugin plugin)
        {
            // dit is de contructor
            base.name = "save";
            base.plugin = plugin;
            base.func = new ActionFunction(this.SaveFile);
            base.pars.Add("path", "optional: the path to save the text to");
            base.exceptions.Add("System.IO.IOException", new ActionFunction(ReadWriteError));
        }

        public void SaveFile(string[] args)
        {
            // dit is de functie
            string filename = "";
            if (args == null || args[0] == "")
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.DefaultExt = "*.txt";
                sfd.Filter = "Tekstbestanden|*.txt|Alle bestanden|*.*";
                sfd.RestoreDirectory = true;
                sfd.Title = "Open een tekstbestand";
                sfd.ValidateNames = true;
                sfd.ShowDialog(this.plugin.MainInterface);
                filename = sfd.FileName;
            }
            else
                filename = args[0];
            StreamWriter sw = new StreamWriter(filename);
            Options.WriteComment("(i) filename: " + filename);
            Options.WriteComment("(i) sw: " + sw.ToString());
            sw.Write((base.plugin.MainInterface as Interface).GetText());
            sw.Close();
            sw.Dispose();
            sw = null;
        }

        public void ReadWriteError(string[] args)
        {
            // dit is de functie die uitgevoerd wordt als er iets mis gaat met het lezen van het bestand
            Options.WriteComment("(x) Het ging mis bij het schrijven naar het bestand!");
        }
    }
}
